#include<iostream>
#include<vector>
#include<map>
using namespace std;
const int N = 1e3 + 10;
char s[N][N];
int dx[] = { -1,-1,-1,0,0,1,1,1 };
int dy[] = { -1,0,1,-1,1,-1,0,1 };
int n, m;
map<int, int>mp;
bool fun(int x, int y, int a, int b)
{
	char k1 = s[x][y] - 'A' + 1;
	mp[k1]++;
	char k2 = s[a][b] - 'A' + 1;
	mp[k2]++;
	if (s[x][y] == s[a][b])return 1;
	if (s[a][b] != 'A' && s[a][b] != 'B' && s[a][b] != 'C')return 1;
	if (s[x][y] != 'A' && s[x][y] != 'B' && s[x][y] != 'C')return 1;
	return 0;
}
int main()
{
	cin >> n >> m;
	for (int i = 1; i <= n; i++) {
		for (int j = 1; j <= m; j++) {
			cin >> s[i][j];
		}
	}
	int ans = 0;
	for (int i = 1; i + 2 <= n; i++) {
		for (int j = 1; j + 2 <= m; j++) {
			mp.clear();
			if (fun(i, j, i, j + 1))continue;
			if (fun(i, j, i + 1, j))continue;
			if (fun(i, j + 1, i, j + 2))continue;
			if (fun(i, j + 2, i + 1, j + 2))continue;
			if (fun(i + 1, j, i + 2, j))continue;
			if (fun(i + 2, j, i + 2, j + 1))continue;
			if (fun(i + 2, j + 1, i + 2, j + 2))continue;
			if (fun(i + 2, j + 2, i + 1, j + 2))continue;
			if (fun(i + 1, j + 1, i + 1, j))continue;
			if (fun(i + 1, j + 1, i + 1, j + 2))continue;
			if (fun(i + 1, j + 1, i + 2, j + 1))continue;
			if (fun(i + 1, j + 1, i, j + 1))continue;
			if (mp[1] >= 1 && mp[2] >= 1 && mp[3] >= 1)ans++;
		}
	}
	//for (int i = 1; i + 2 <= n; i++) {
	//	for (int j = 1; j + 2 <= m; j++) {
	//		bool flag = 0;
	//		char d = s[i + 1][j + 1];
	//		if (d != 'A' && d != 'B' && d != 'C')continue;
 //           //cout << "d==" << d << endl;
	//		int x = i + 1, y = j + 1;
	//		for (int k = 0; k < 8; k++) {
	//			int a = dx[k] + x;
	//			int b = dy[k] + y;
	//			cout << "s[a][b]==" << s[a][b] << endl;
	//			if (s[a][b] != 'A' && s[a][b] != 'B' && s[a][b] != 'C') {
	//				flag = 1;
	//				break;
	//			}
	//			/*if (s[a][b] == d) {
	//				flag = 1;
	//				break;
	//			}*/
	//		}
	//		cout << "flag==" << flag << endl;
	//		if (!flag) {
	//			if (fun(i, j, i, j + 1))continue;
	//			if (fun(i, j, i + 1, j))continue;
	//			if (fun(i, j + 1, i, j + 2))continue;
	//			if (fun(i, j + 2, i + 1, j))continue;
	//			if (fun(i + 1, j, i + 2, j))continue;
	//			if (fun(i + 2, j, i + 2, j + 1))continue;
	//			if (fun(i + 2, j + 1, i + 2, j + 2))continue;
	//			if (fun(i + 2, j + 2, i + 1, j + 2))continue;
	//			ans++;
	//		}
	//	}
	//}
	cout << ans << endl;
	return 0;
}